<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // async 和 await 语法可以让异步代码像同步代码一样

    // async 函数的返回值是 promise 对象
    async function fn() {
      // return 'aaa'  // 正常返回结果，是一个成功状态的 promise 对象

      // throw new Error('出错啦')   // 抛出错误，是一个失败状态的 promise 对象


      // 返回结果如果是一个 promise 对象，则直接返回这个 promise 对象
      return new Promise((resolve, reject) => {
        resolve('成功')
      })

    }

    const result = fn()
    // 返回是一个 promise 对象
    // console.log(result);    // Promise {<fulfilled>: 'aaa'}

    result.then(value => {
      console.log(value);
    }, reason => {
      console.log(reason);
    })

  </script>
</body>

</html>